package com.scrx.ymg.service.direct;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.scrx.ymg.entity.Banner;
import com.scrx.ymg.entity.DirectInfo;
import com.scrx.ymg.entity.DirectMoney;
import com.scrx.ymg.entity.DirectProduct;

public interface IDirectService {
    
    /**
     * 创建直营商家并创建商家资金账号
	 * @param info 商家信息       
	 * info.status:0.正常营业,1.冻结
     * @param licenseFile 营业执照图片
     * @param identityCardFile 法人身份证图片
     * @param brandFile 商标专利图片
     * @param qsImgFile QS标示图片
     * @param accreditFile 官方授权证书
	 * @return true: 创建成功,  false:创建失败,  251:账号或商家名称重复
     */
	public String insertDirectInfo(DirectInfo info, MultipartFile licenseFile, MultipartFile identityCardFile,
			MultipartFile brandFile, MultipartFile qsImgFile, MultipartFile accreditFile);
	
	public String updateDirectInfoAll(DirectInfo info, MultipartFile licenseFile, MultipartFile identityCardFile,
			MultipartFile brandFile, MultipartFile qsImgFile, MultipartFile accreditFile);
   
	/**
	 * 更新直营商家
	 * @param info
	 * @return
	 */
	public String updateDirectInfo(DirectInfo info);
	
	/**
	 * 查询商家
	 * @param id
	 * @return
	 */
	public DirectInfo getDirectInfoById(Integer id);
    
	/**
	 * 得到直营商家账户资金
	 * @param id
	 * @return
	 */
	public DirectMoney getDirectMoney(Integer id);
    
	/**
	 * 直营商家修改密码
	 * @param info
	 * info.account 账号
	 * passWord 密码;
	 * @param newPassWord 新密码
	 * @return
	 */
	public String updateDirectInfoPassword(DirectInfo info, String newPassWord);
    
    /**
     * 录入直营商品
     * @param product 商品信息
     * product.type:商品是否推销,0.普通商品,1推销商品
     * product.putaway:商品是否上架,0.已下架.1.已上架
     * product.status:商品状态,0.未审核.1审核通过,2审核失败,3过期
     * product.classify:商品所属分类.1.地方特色,2手机电器.3.精品生活
     * @param adFile  广告图片
     * @param thumbnailFile 缩略图
     * @param detailsFile   详情图
     * @param introduce1File 介绍图1
     * @param introduce2File 介绍图2
     * @param introduce3File 介绍图3
	 * @return true: 创建成功,  false:创建失败,  251:商品名称重复
     */
	public String insertDirectProduct(DirectProduct product, MultipartFile adFile, MultipartFile thumbnailFile,
			MultipartFile detailsFile, MultipartFile introduce1File, MultipartFile introduce2File,
			MultipartFile introduce3File,List<MultipartFile>banners);
    /**
     * 查询直营产品
     * @param product 各种条件
     * @param pageNum 第几页
     * @param pageCount 每页显示多少条
     * @return
     */
	public Map<Object, Object> getDirectProduct(DirectProduct product, int pageNum, int pageCount);
	/**
	 * 更新直营商品//审核,修改,上架
     * @param product 商品信息
     * product.type:商品是否推销,0.普通商品,1推销商品
     * product.putaway:商品是否上架,0.已下架.1.已上架
     * product.status:商品状态,0.未审核.1审核通过,2审核失败,3过期
     * product.classify:商品所属分类.1.地方特色,2手机电器.3.精品生活
     * @param adFile  广告图片
     * @param thumbnailFile 缩略图
     * @param detailsFile   详情图
     * @param introduce1File 介绍图1
     * @param introduce2File 介绍图2
     * @param introduce3File 介绍图3
	 * @return true: 创建成功,  false:创建失败,  251:商品名称重复
	 * @return
	 */
	public String updateDirectProduct(DirectProduct product, MultipartFile adFile, MultipartFile thumbnailFile,
			MultipartFile detailsFile, MultipartFile introduce1File, MultipartFile introduce2File,
			MultipartFile introduce3File,List<MultipartFile> banners);
    /**
     * 查询直营商家
     * @param info 各种条件
     * @param pageNum 第几页
     * @param pageCount 每页显示多少条
     * @return
     */
	public Map<Object, Object> getDirectInfo(DirectInfo info, int pageNum, int pageCount);
    
	/**
	 * 审核直营商品
	 * @param product
	 * @return
	 */
	public String checkDirectProduct(DirectProduct product);
    
	/**
	 * 根据id查询直营商品
	 * @param productId
	 * @return
	 */
	public DirectProduct getDirectProductById(int productId);
	
	/**
	 * 根据商品id查询banner图
	 * @param id
	 * @return
	 */
	public Banner getBannerByProductId(Integer id);

}
